package com.xxl.job.executor.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * @Author caiqian
 * @Date 2022/12/30
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("da_device")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class Device implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private java.lang.Long id;


    /**
     * 租户ID
     */

    private java.lang.Long tenantId;


    /**
     * 应用ID
     */

    private java.lang.Long appId;


    /**
     * 项目ID
     */

    private java.lang.Long projectId;


    /**
     * 产品ID
     */

    private java.lang.Long productId;


    /**
     * 设备标识码（16进制数），一般为设备的IMEI、MAC地址或Serial No之类。
     */

    private java.lang.String code;


    /**
     * 名称
     */

    private java.lang.String name;

    /**
     * 节点类型[字典-deviceNodeType]
     */

    private java.lang.Integer nodeType;


    /**
     * 设备状态[字典-deviceStatus]
     */

    private java.lang.Integer status;


    /**
     * 接入认证模式[字典-deviceAuthMode]
     */

    private java.lang.Integer authMode;


    /**
     * 密钥
     */

    private java.lang.String secretKey;


    /**
     * 证书指纹
     */

    private java.lang.String fingerprint;


    /**
     * 设备影子[JSON]
     */

    private java.lang.String shadow;


    /**
     * 标签
     */

    private java.lang.String tags;


    /**
     * 删除[1-已删除,0-未删除]
     */

    private java.lang.Integer isDeleted;

    /**
     * 工作类型[字典-deviceWorkType][默认-2]
     */

    private java.lang.Integer workType;

    /**
     * 边缘设备（MTIE）[默认-0]
     */
    private java.lang.Long deviceId;

    /**
     * ip
     */
    private java.lang.String ip;

    /**
     * 端口号
     */
    private java.lang.Integer port;


    /**
     * 描述
     */

    private java.lang.String description;


    /**
     * 创建时间[DB自动]
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")

    private java.util.Date createTime;


    /**
     * 最后修改时间[DB自动]
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")

    private java.util.Date updateTime;


    /**
     * 创建人
     */

    private java.lang.String createBy;


    /**
     * 最后修改人
     */

    private java.lang.String updateBy;

    /**
     * 助记码（用于帮助构成属性唯一码）
     */

    private java.lang.String mnemonicCode;

}